var app = getApp();
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    index: { type: Number, value: 0 }, // 下标
    name: { type: String, value: ''}, // 图片的名字
    showDel: { type: Boolean, value: true, }, // 是否展示删除按钮
    imgValue: { type: String, vlaue: ''}, // 默认的图片列表
  },

  /**
   * 组件的初始数据
   */
  data: {
    fileList: [],
    num: 2, // 默认2张图片
  },

  lifetimes: {

    attached () {

      let imgArr = this.data.imgValue.split(',')

      let imgObj = []

      imgArr.forEach(item => {
        imgObj.push({
          name: 'img',
          url: item
        })
      })

      if (this.data.imgValue) {
        this.setData({
          fileList: imgObj,
          num: imgArr.length
        })
      }

    }
  },


  /**
   * 组件的方法列表
   */
  methods: {
     // 图片上传 成功
    afterRead(event) {
      let url=app.globalData.baseUrl
      let that = this
      const { file } = event.detail;

      // 当设置 mutiple 为 true 时, file 为数组格式，否则为对象格式
      wx.uploadFile({
        url:  url+ '/common/upload', 
        filePath: file.url,
        name: 'file',
        header: {Authorization: wx.getStorageSync('token')},
        formData: { img: file.url, type: 'MINI', },
        success(res) {
          let info = JSON.parse(res.data)

          if (info) {
            let list = that.data.fileList

            list.push({ name: info.fileName, url: url+info.fileName });
            that.setData({ fileList: list })

            that.triggerEvent('imgHandle', {list, index: that.data.index} );

            wx.showToast({
              icon: 'success',
              title: '上传成功'
            })
          } else {
            wx.showToast({
              icon: 'none',
              title: info.msg
            })
          }
        },
        fail(res){
          wx.showToast({
            icon: 'none',
            title: '上传图片失败',
          })
        },
      });
    },

    // 上传前置校验  目前限制大小
    beforeRead (event) {
      const { file, callback } = event.detail;

      if (file.size > 10485760) {
        wx.showToast({
          icon: 'none',
          title: '上传图片大小不能超过10M',
        })
      } else {
        callback(true) // 通过前置校验 
      }

    },

    // 图片删除
    delImg (e) {
      let list = this.data.fileList

      list.splice(e.detail.index, 1)

      this.triggerEvent('imgHandle', {list, index: this.data.index});

      this.setData({fileList: list})
    },

    // 得到图片
    getImg () {
      return this.data.fileList
    }

  }
})
